In distributed computing, an object request broker (ORB) is a piece of middleware software that allows programmers to make program calls from one computer to another via a network. ORBs promote interoperability of distributed object systems because they enable users to build systems by piecing together objects from different vendors, so that they communicate with each other via the ORB.
ORBs handle the transformation of in-process data structures to and from the byte sequence, which is transmitted over the network. This is called marshalling or serialization.
Some ORBs, such as CORBA-compliant systems, use an Interface Description Language (IDL) to describe the data that is to be transmitted on remote calls.
In addition to marshalling data, ORBs often expose many more features, such as distributed transactions, directory services or real-time scheduling.
In object-oriented languages, the ORB takes the form of an object with methods enabling connection to the objects being served. After an object connects to the ORB, the methods of that object become accessible for remote invocations. The ORB requires some means of obtaining the network address of the object that has now become remote. The typical ORB also has many other methods.